From c1d90273ca23a5c4d7d9512ceb42de898c882ab1 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 22 Jun 2020 23:19:35 +0200 Subject: [PATCH] gdk: Drop GDK_SOURCE_ERASER All tools come from devices with GDK_SOURCE_PEN. --- gdk/gdkdevice.h | 3 - gdk/gdkseatdefault.c | 1 - gdk/wayland/gdkdevice-wayland.c | 105 ++++++++++---------------------- gdk/x11/gdkdevicemanager-xi2.c | 7 +-- gtk/gtkscrolledwindow.c | 1 - 5 files changed, 36 insertions(+), 81 deletions(-) diff --git a/gdk/gdkdevice.h b/gdk/gdkdevice.h index 888775d06f..0eefbb6cac 100644 --- a/gdk/gdkdevice.h +++ b/gdk/gdkdevice.h @@ -40,8 +40,6 @@ typedef struct _GdkTimeCoord GdkTimeCoord; * @GDK_SOURCE_MOUSE: the device is a mouse. (This will be reported for the core * pointer, even if it is something else, such as a trackball.) * @GDK_SOURCE_PEN: the device is a stylus of a graphics tablet or similar device. - * @GDK_SOURCE_ERASER: the device is an eraser. Typically, this would be the other end - * of a stylus on a graphics tablet. * @GDK_SOURCE_CURSOR: the device is a graphics tablet “puck” or similar device. * @GDK_SOURCE_KEYBOARD: the device is a keyboard. * @GDK_SOURCE_TOUCHSCREEN: the device is a direct-input touch device, such @@ -60,7 +58,6 @@ typedef enum { GDK_SOURCE_MOUSE, GDK_SOURCE_PEN, - GDK_SOURCE_ERASER, GDK_SOURCE_CURSOR, GDK_SOURCE_KEYBOARD, GDK_SOURCE_TOUCHSCREEN, diff --git a/gdk/gdkseatdefault.c b/gdk/gdkseatdefault.c index 2e187ccae5..ef0fe299d4 100644 --- a/gdk/gdkseatdefault.c +++ b/gdk/gdkseatdefault.c @@ -228,7 +228,6 @@ device_get_capability (GdkDevice *device) case GDK_SOURCE_TOUCHSCREEN: return GDK_SEAT_CAPABILITY_TOUCH; case GDK_SOURCE_PEN: - case GDK_SOURCE_ERASER: case GDK_SOURCE_CURSOR: return GDK_SEAT_CAPABILITY_TABLET_STYLUS; case GDK_SOURCE_TABLET_PAD: diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c index 9916853adf..b18006b0c6 100644 --- a/gdk/wayland/gdkdevice-wayland.c +++ b/gdk/wayland/gdkdevice-wayland.c @@ -178,8 +178,6 @@ struct _GdkWaylandTabletData GdkDevice *logical_device; GdkDevice *stylus_device; - GdkDevice *eraser_device; - GdkDevice *current_device; GdkSeat *seat; GdkWaylandPointerData pointer_info; @@ -350,8 +348,7 @@ gdk_wayland_seat_find_tablet (GdkWaylandSeat *seat, GdkWaylandTabletData *tablet = l->data; if (tablet->logical_device == device || - tablet->stylus_device == device || - tablet->eraser_device == device) + tablet->stylus_device == device) return tablet; } @@ -2738,20 +2735,6 @@ gesture_pinch_end (void *data, 0, 0, 1, 0); } -static GdkDevice * -tablet_select_device_for_tool (GdkWaylandTabletData *tablet, - GdkDeviceTool *tool) -{ - GdkDevice *device; - - if (gdk_device_tool_get_tool_type (tool) == GDK_DEVICE_TOOL_TYPE_ERASER) - device = tablet->eraser_device; - else - device = tablet->stylus_device; - - return device; -} - static void _gdk_wayland_seat_remove_tool (GdkWaylandSeat *seat, GdkWaylandTabletToolData *tool) @@ -2772,7 +2755,6 @@ _gdk_wayland_seat_remove_tablet (GdkWaylandSeat *seat, seat->tablets = g_list_remove (seat->tablets, tablet); gdk_seat_device_removed (GDK_SEAT (seat), tablet->stylus_device); - gdk_seat_device_removed (GDK_SEAT (seat), tablet->eraser_device); gdk_seat_device_removed (GDK_SEAT (seat), tablet->logical_device); while (tablet->pads) @@ -2787,7 +2769,6 @@ _gdk_wayland_seat_remove_tablet (GdkWaylandSeat *seat, _gdk_device_set_associated_device (tablet->logical_device, NULL); _gdk_device_set_associated_device (tablet->stylus_device, NULL); - _gdk_device_set_associated_device (tablet->eraser_device, NULL); if (tablet->pointer_info.focus) g_object_unref (tablet->pointer_info.focus); @@ -2798,7 +2779,6 @@ _gdk_wayland_seat_remove_tablet (GdkWaylandSeat *seat, wl_surface_destroy (tablet->pointer_info.pointer_surface); g_object_unref (tablet->logical_device); g_object_unref (tablet->stylus_device); - g_object_unref (tablet->eraser_device); g_free (tablet); } @@ -2872,8 +2852,8 @@ tablet_handle_done (void *data, GdkWaylandTabletData *tablet = data; GdkWaylandSeat *seat = GDK_WAYLAND_SEAT (tablet->seat); GdkDisplay *display = gdk_seat_get_display (GDK_SEAT (seat)); - GdkDevice *logical_device, *stylus_device, *eraser_device; - gchar *logical_name, *eraser_name; + GdkDevice *logical_device, *stylus_device; + gchar *logical_name; gchar *vid, *pid; vid = g_strdup_printf ("%.4x", tablet->vid); @@ -2890,8 +2870,6 @@ tablet_handle_done (void *data, NULL); GDK_WAYLAND_DEVICE (logical_device)->pointer = &tablet->pointer_info; - eraser_name = g_strconcat (tablet->name, " (Eraser)", NULL); - stylus_device = g_object_new (GDK_TYPE_WAYLAND_DEVICE, "name", tablet->name, "type", GDK_DEVICE_TYPE_PHYSICAL, @@ -2903,32 +2881,17 @@ tablet_handle_done (void *data, "product-id", pid, NULL); - eraser_device = g_object_new (GDK_TYPE_WAYLAND_DEVICE, - "name", eraser_name, - "type", GDK_DEVICE_TYPE_PHYSICAL, - "source", GDK_SOURCE_ERASER, - "has-cursor", FALSE, - "display", display, - "seat", seat, - "vendor-id", vid, - "product-id", pid, - NULL); - tablet->logical_device = logical_device; init_pointer_data (&tablet->pointer_info, display, tablet->logical_device); tablet->stylus_device = stylus_device; - tablet->eraser_device = eraser_device; _gdk_device_set_associated_device (logical_device, seat->logical_keyboard); _gdk_device_set_associated_device (stylus_device, logical_device); - _gdk_device_set_associated_device (eraser_device, logical_device); gdk_seat_device_added (GDK_SEAT (seat), logical_device); gdk_seat_device_added (GDK_SEAT (seat), stylus_device); - gdk_seat_device_added (GDK_SEAT (seat), eraser_device); - g_free (eraser_name); g_free (logical_name); g_free (vid); g_free (pid); @@ -3383,45 +3346,45 @@ gdk_wayland_device_tablet_clone_tool_axes (GdkWaylandTabletData *tablet, { gint axis_pos; - g_object_freeze_notify (G_OBJECT (tablet->current_device)); - _gdk_device_reset_axes (tablet->current_device); + g_object_freeze_notify (G_OBJECT (tablet->stylus_device)); + _gdk_device_reset_axes (tablet->stylus_device); - _gdk_device_add_axis (tablet->current_device, GDK_AXIS_X, 0, 0, 0); - _gdk_device_add_axis (tablet->current_device, GDK_AXIS_Y, 0, 0, 0); + _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_X, 0, 0, 0); + _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_Y, 0, 0, 0); if (tool->tool_axes & (GDK_AXIS_FLAG_XTILT | GDK_AXIS_FLAG_YTILT)) { - axis_pos = _gdk_device_add_axis (tablet->current_device, + axis_pos = _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_XTILT, -90, 90, 0); tablet->axis_indices[GDK_AXIS_XTILT] = axis_pos; - axis_pos = _gdk_device_add_axis (tablet->current_device, + axis_pos = _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_YTILT, -90, 90, 0); tablet->axis_indices[GDK_AXIS_YTILT] = axis_pos; } if (tool->tool_axes & GDK_AXIS_FLAG_DISTANCE) { - axis_pos = _gdk_device_add_axis (tablet->current_device, + axis_pos = _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_DISTANCE, 0, 65535, 0); tablet->axis_indices[GDK_AXIS_DISTANCE] = axis_pos; } if (tool->tool_axes & GDK_AXIS_FLAG_PRESSURE) { - axis_pos = _gdk_device_add_axis (tablet->current_device, + axis_pos = _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_PRESSURE, 0, 65535, 0); tablet->axis_indices[GDK_AXIS_PRESSURE] = axis_pos; } if (tool->tool_axes & GDK_AXIS_FLAG_ROTATION) { - axis_pos = _gdk_device_add_axis (tablet->current_device, + axis_pos = _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_ROTATION, 0, 360, 0); tablet->axis_indices[GDK_AXIS_ROTATION] = axis_pos; } if (tool->tool_axes & GDK_AXIS_FLAG_SLIDER) { - axis_pos = _gdk_device_add_axis (tablet->current_device, + axis_pos = _gdk_device_add_axis (tablet->stylus_device, GDK_AXIS_SLIDER, -65535, 65535, 0); tablet->axis_indices[GDK_AXIS_SLIDER] = axis_pos; } @@ -3430,9 +3393,9 @@ gdk_wayland_device_tablet_clone_tool_axes (GdkWaylandTabletData *tablet, g_free (tablet->axes); tablet->axes = - g_new0 (gdouble, gdk_device_get_n_axes (tablet->current_device)); + g_new0 (gdouble, gdk_device_get_n_axes (tablet->stylus_device)); - g_object_thaw_notify (G_OBJECT (tablet->current_device)); + g_object_thaw_notify (G_OBJECT (tablet->stylus_device)); } static void @@ -3485,16 +3448,15 @@ tablet_tool_handle_proximity_in (void *data, tablet->pointer_info.enter_serial = serial; tablet->pointer_info.focus = g_object_ref (surface); - tablet->current_device = tablet_select_device_for_tool (tablet, tool->tool); - gdk_device_update_tool (tablet->current_device, tool->tool); + gdk_device_update_tool (tablet->stylus_device, tool->tool); gdk_wayland_device_tablet_clone_tool_axes (tablet, tool->tool); - gdk_wayland_mimic_device_axes (tablet->logical_device, tablet->current_device); + gdk_wayland_mimic_device_axes (tablet->logical_device, tablet->stylus_device); event = gdk_proximity_event_new (GDK_PROXIMITY_IN, tablet->pointer_info.focus, tablet->logical_device, - tablet->current_device, + tablet->stylus_device, tool->tool, tablet->pointer_info.time); gdk_wayland_tablet_set_frame_event (tablet, event); @@ -3525,7 +3487,7 @@ tablet_tool_handle_proximity_out (void *data, event = gdk_proximity_event_new (GDK_PROXIMITY_OUT, tablet->pointer_info.focus, tablet->logical_device, - tablet->current_device, + tablet->stylus_device, tool->tool, tablet->pointer_info.time); gdk_wayland_tablet_set_frame_event (tablet, event); @@ -3540,7 +3502,7 @@ tablet_tool_handle_proximity_out (void *data, g_object_unref (tablet->pointer_info.focus); tablet->pointer_info.focus = NULL; - gdk_device_update_tool (tablet->current_device, NULL); + gdk_device_update_tool (tablet->stylus_device, NULL); g_clear_object (&tablet->pointer_info.cursor); } @@ -3548,7 +3510,7 @@ static double * tablet_copy_axes (GdkWaylandTabletData *tablet) { return g_memdup (tablet->axes, - sizeof (gdouble) * gdk_device_get_n_axes (tablet->current_device)); + sizeof (gdouble) * gdk_device_get_n_axes (tablet->stylus_device)); } static void @@ -3562,7 +3524,7 @@ tablet_create_button_event_frame (GdkWaylandTabletData *tablet, event = gdk_button_event_new (evtype, tablet->pointer_info.focus, tablet->logical_device, - tablet->current_device, + tablet->stylus_device, tablet->current_tool->tool, tablet->pointer_info.time, device_get_modifiers (seat->logical_pointer), @@ -3627,7 +3589,7 @@ tablet_tool_handle_motion (void *data, event = gdk_motion_event_new (tablet->pointer_info.focus, tablet->logical_device, - tablet->current_device, + tablet->stylus_device, tool->tool, tablet->pointer_info.time, device_get_modifiers (tablet->logical_device), @@ -3647,7 +3609,7 @@ tablet_tool_handle_pressure (void *data, GdkWaylandTabletData *tablet = tool->current_tablet; gint axis_index = tablet->axis_indices[GDK_AXIS_PRESSURE]; - _gdk_device_translate_axis (tablet->current_device, axis_index, + _gdk_device_translate_axis (tablet->stylus_device, axis_index, pressure, &tablet->axes[axis_index]); GDK_SEAT_NOTE (tool->seat, EVENTS, @@ -3664,7 +3626,7 @@ tablet_tool_handle_distance (void *data, GdkWaylandTabletData *tablet = tool->current_tablet; gint axis_index = tablet->axis_indices[GDK_AXIS_DISTANCE]; - _gdk_device_translate_axis (tablet->current_device, axis_index, + _gdk_device_translate_axis (tablet->stylus_device, axis_index, distance, &tablet->axes[axis_index]); GDK_SEAT_NOTE (tool->seat, EVENTS, @@ -3683,10 +3645,10 @@ tablet_tool_handle_tilt (void *data, gint xtilt_axis_index = tablet->axis_indices[GDK_AXIS_XTILT]; gint ytilt_axis_index = tablet->axis_indices[GDK_AXIS_YTILT]; - _gdk_device_translate_axis (tablet->current_device, xtilt_axis_index, + _gdk_device_translate_axis (tablet->stylus_device, xtilt_axis_index, wl_fixed_to_double (xtilt), &tablet->axes[xtilt_axis_index]); - _gdk_device_translate_axis (tablet->current_device, ytilt_axis_index, + _gdk_device_translate_axis (tablet->stylus_device, ytilt_axis_index, wl_fixed_to_double (ytilt), &tablet->axes[ytilt_axis_index]); @@ -3741,7 +3703,7 @@ tablet_tool_handle_rotation (void *data, GdkWaylandTabletData *tablet = tool->current_tablet; gint axis_index = tablet->axis_indices[GDK_AXIS_ROTATION]; - _gdk_device_translate_axis (tablet->current_device, axis_index, + _gdk_device_translate_axis (tablet->stylus_device, axis_index, wl_fixed_to_double (degrees), &tablet->axes[axis_index]); @@ -3760,7 +3722,7 @@ tablet_tool_handle_slider (void *data, GdkWaylandTabletData *tablet = tool->current_tablet; gint axis_index = tablet->axis_indices[GDK_AXIS_SLIDER]; - _gdk_device_translate_axis (tablet->current_device, axis_index, + _gdk_device_translate_axis (tablet->stylus_device, axis_index, position, &tablet->axes[axis_index]); GDK_SEAT_NOTE (tool->seat, EVENTS, @@ -3789,7 +3751,7 @@ tablet_tool_handle_wheel (void *data, /* Send smooth event */ event = gdk_scroll_event_new (tablet->pointer_info.focus, tablet->logical_device, - tablet->current_device, + tablet->stylus_device, tablet->current_tool->tool, tablet->pointer_info.time, device_get_modifiers (tablet->logical_device), @@ -3801,7 +3763,7 @@ tablet_tool_handle_wheel (void *data, /* Send discrete event */ event = gdk_scroll_event_new_discrete (tablet->pointer_info.focus, tablet->logical_device, - tablet->current_device, + tablet->stylus_device, tablet->current_tool->tool, tablet->pointer_info.time, device_get_modifiers (tablet->logical_device), @@ -4792,7 +4754,6 @@ gdk_wayland_seat_get_physical_devices (GdkSeat *seat, GdkWaylandTabletData *tablet = l->data; physical_devices = g_list_prepend (physical_devices, tablet->stylus_device); - physical_devices = g_list_prepend (physical_devices, tablet->eraser_device); } } @@ -4983,7 +4944,7 @@ _gdk_wayland_device_get_implicit_grab_serial (GdkWaylandDevice *device, { GdkWaylandTabletData *tablet = l->data; - if (tablet->current_device == source) + if (tablet->stylus_device == source) return tablet->pointer_info.press_serial; } } @@ -5144,7 +5105,7 @@ gdk_wayland_seat_get_wl_seat (GdkSeat *seat) * will return %NULL. * * This is most notably implemented for devices of type - * %GDK_SOURCE_PEN, %GDK_SOURCE_ERASER and %GDK_SOURCE_TABLET_PAD. + * %GDK_SOURCE_PEN, %GDK_SOURCE_TABLET_PAD. * * Returns: the /dev/input/event* path of this device **/ diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c index ced9d905a3..0db1865c17 100644 --- a/gdk/x11/gdkdevicemanager-xi2.c +++ b/gdk/x11/gdkdevicemanager-xi2.c @@ -489,14 +489,13 @@ create_device (GdkX11DeviceManagerXI2 *device_manager, tmp_name = g_ascii_strdown (dev->name, -1); - if (strstr (tmp_name, "eraser")) - input_source = GDK_SOURCE_ERASER; - else if (strstr (tmp_name, "cursor")) + if (strstr (tmp_name, "cursor")) input_source = GDK_SOURCE_CURSOR; else if (strstr (tmp_name, " pad")) input_source = GDK_SOURCE_TABLET_PAD; else if (strstr (tmp_name, "wacom") || - strstr (tmp_name, "pen")) + strstr (tmp_name, "pen") || + strstr (tmp_name, "eraser")) input_source = GDK_SOURCE_PEN; else if (!strstr (tmp_name, "mouse") && !strstr (tmp_name, "pointer") && diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 00e088cd7e..0cedd54f74 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -1269,7 +1269,6 @@ captured_motion (GtkEventController *controller, indicator_set_over (&priv->vindicator, FALSE); } else if (input_source == GDK_SOURCE_PEN || - input_source == GDK_SOURCE_ERASER || input_source == GDK_SOURCE_TRACKPOINT) { indicator_set_over (&priv->hindicator, TRUE); -- 2.30.2